/**
 *  collision.h
 *  AwkwardPaint - Engine
 *
 *  Date: 11/08/2013
 *
 *  Language: C++
 *
 *  @author Carl McCaffrey
 *
 */
#ifndef COLLISION_H
#define COLLISION_H

#include "physics/collision/collider.h"

class CollisionManager
{
    private:
        bool AABBCollision(Collider* body1, Collider* body2, Vector2* normal);
        bool OBBCollision(Collider* body1, Collider* body2, Vector2* normal);

        bool CircleCollision(Collider* body1, Collider* body2, Vector2* normal);
        bool TriangleCollision(Collider* body1, Collider* body2, Vector2* normal);

        bool AABBCircleCollision(Collider* body1, Collider* body2, Vector2* normal);
        bool OBBCircleCollision(Collider* body1, Collider* body2, Vector2* normal);

        bool AABBTriangleCollision(Collider* body1, Collider* body2, Vector2* normal);
        bool OBBTriangleCollision(Collider* body1, Collider* body2, Vector2* normal);


        bool CircleTriangleCollision(Collider* body1, Collider* body2, Vector2* normal);

    protected:
        bool TestCollision(Collider* body1, Collider* body2, Vector2* normal);
};

#endif // COLLISION_H
